#ifndef CODESERREURS_H
#define CODESERREURS_H

namespace CodesErreurs
{
  /**
   * Liste des codes d'erreurs, définit comme une énumération, pour
   * être plus flexible : en effet il suffit d'éditer ce fichier en
   * cas de besoin pour redéfinir les valeurs des codes, sans pour
   * autant devoir changer les nombreux fichiers dans lesquels ces
   * valeurs sont utilisées.
   *
   * @author Johan "Solo" Luisier
   */
  enum ValeursCodes
  {
    // Erreurs "générales"
    ErreurLectureFichier            =  01,
    DepassementPorteeBool           =  10,
    DepassementPorteeChar           =  11,
    DepassementPorteeUint           =  12,
    DepassementPorteeInt            =  13,
    DepassementPorteeFloat          =  14,
    DepassementPorteeDouble         =  15,
    DepassementPorteeString         =  16,
    DepassementPorteeEnum           =  17,
    DepassementPorteeAutre          =  18,
    // Erreur liés à la lecture d'un fichier XML
    DebutBaliseManquant             = 100,
    FinBaliseManquante              = 101,
    FermetureMauvaiseBalise         = 110,
    ErreurSyntaxeCommentaire        = 120,
    BaliseAttenduePasTrouvee        = 150,
    // Erreurs liés à la récupération de données
    AucunEnfantTrouve               = 200,
    AutreBaliseTrouvee              = 210,
    ElementManquant                 = 220,
    ErreurLectureScalaireBool       = 230,
    ErreurLectureScalaireChar       = 231,
    ErreurLectureScalaireUint       = 232,
    ErreurLectureScalaireInt        = 233,
    ErreurLectureScalaireFloat      = 234,
    ErreurLectureScalaireDouble     = 235,
    ErreurLectureScalaireString     = 236,
    ErreurLectureScalaireEnum       = 237,
    ErreurLectureVecteurBool        = 240,
    ErreurLectureVecteurChar        = 241,
    ErreurLectureVecteurUint        = 242,
    ErreurLectureVecteurInt         = 243,
    ErreurLectureVecteurFloat       = 244,
    ErreurLectureVecteurDouble      = 245,
    ErreurLectureVecteurString      = 246,
    ErreurLectureVecteurEnum        = 247,
    ErreurLectureAttributBool       = 250,
    ErreurLectureAttributChar       = 251,
    ErreurLectureAttributUint       = 252,
    ErreurLectureAttributInt        = 253,
    ErreurLectureAttributFloat      = 254,
    ErreurLectureAttributDouble     = 255,
    ErreurLectureAttributString     = 256,
    ErreurLectureAttributEnum       = 257,
    ErreurConstructionObjetComplexe = 290//,
    // Erreurs liées à une Race
    
    // Erreurs liées à une Classe
  };
}

#endif // CODESERREURS_H
